<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body></body>
  <script>
    /* 
        this 
            - 函数在执行时，JS解析器每次都会传递进一个隐含的函数
            - 这个参数就叫this
            - this会指向一个对象
                -this所指向的对象会根据函数调用方式的不同而不同
                    1.以函数形式调用，this指向的是window
                    2.以方法的形式调用时，this指向的是调用方法的对象
    */
    let arr = [1, 2, 3];
    let obj = {
      name: "zs",
      fn: () => {
        console.log("fn", this); //箭头函数 指向外层作用域中的this， 结果是： window
      },
    };
    function fn() {
      console.log(this, "this");
    }
    fn();
    arr[arr.length] = fn;
    obj.test = fn;
    obj.test(); // 指向的是对象
    obj.fn();
    arr[3]();
  </script>
</html>
